package com.config;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.concurrent.atomic.AtomicInteger;

import org.springframework.context.annotation.Configuration;

@Configuration
public class PrimaryGenerater {
	//AtomicInteger是一个提供原子操作的Integer类，通过线程安全的方式操作加减。
	//提供原子操作来进行Integer的使用，因此十分适合高并发情况下的使用
	 static AtomicInteger atomicInteger=new AtomicInteger();
	//實現生成保單號
	//生成規則:年月日時分秒+00001~00099
	public static String toDateString() {
		//日历类 主要涉及两个类，一个就是抽象类 Calendar类，另一个是他的子类GregorianCalendar
		
		//获取对应的年月日时分等值.
		Calendar calendar = new GregorianCalendar();
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH)+1;
		int day = calendar.get(Calendar.DAY_OF_MONTH);
		int hours=calendar.get(Calendar.HOUR_OF_DAY);
		int minute=calendar.get(Calendar.MINUTE);//分
		int second=calendar.get(Calendar.SECOND);//秒
		int mii=calendar.get(Calendar.MILLISECOND);//毫秒
		int m=atomicInteger.getAndIncrement();
		//System.out.println(mii);
		//拼接单号
		String str="";
		if(m>=99) {
			atomicInteger=new AtomicInteger();  //当单号累积到100,清空值重新从0开始计算
		}
		if(m<10) {
	     str="" + year + "0"+month +"0"+ day +hours+minute+second+mii+ m+m; 
		}else {
		   str="" + year + "0"+month +"0"+ day +hours+minute+second+mii+ m; 
		}		
			return str;
	}
//	if(m<10) {
//	     str="" + year + "0"+month +"0"+ day +hours+minute+second+mii+ m; 
//		}
	

}
